package cn.com.yasms;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.elite.algorithm.GUID;

import cn.com.elite.util;
import cn.com.elite.yasmsImpl;

public class YASMS{
	private static final Log log=LogFactory.getLog(YASMS.class);
	public static void main(String[] args){
//		SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
//		SimpleDateFormat df1=new SimpleDateFormat("HH:mm:ss");
//		Calendar cal1=Calendar.getInstance();
//        cal1.add(Calendar.DATE,0);
//        Calendar cal2=Calendar.getInstance();
//        cal2.add(Calendar.DATE,1);
//        System.out.println(df1.format(cal1.getTime()));
//        System.out.println(df1.format(cal2.getTime()));
		String url="http://10.80.200.166:7001/wssmsif/services/SmsService?wsdl";
		String guid=(new GUID()).toString();
		String OrganizationId="0";
		String ServiceType="ceshi";
		String Receiver="13636445902";
		String Contents="GPS_01测试";
		String OrgCode="0";
		String username="admin";
		String password="Admin";
		String TaskValue="";
		YASMS yASMS=new YASMS();
		yASMS.SendSms(url, guid, OrganizationId, ServiceType, Receiver, Contents, OrgCode, username, password,TaskValue);
		System.out.println(guid);
	}
	public void SendSms(String url,String guid,String OrganizationId,String ServiceType,String Receiver,String Contents,String OrgCode,String username,String password,String TaskValue){
		try{
			java.net.URL endpoint=new java.net.URL(url);
			com.wisdom.sms.net.http.SmsServiceSoapBindingStub binding=(com.wisdom.sms.net.http.SmsServiceSoapBindingStub)new com.wisdom.sms.net.http.SmsServiceServiceLocator().getSmsService(endpoint);
			binding.setTimeout(60000);
			java.util.Vector vec=new java.util.Vector();
			com.wisdom.sms.net.messages.SmsMessages msgs=new com.wisdom.sms.net.messages.SmsMessages();
            msgs.setTaskId(guid);// 请确保此值在每次通过接口发送时唯一
            msgs.setOrganizationId(OrganizationId);// 设置该批短信的OrganizationId，定义同上文下行短信格式中的Organization元素             
   		    msgs.setNeedUseTemplateFlag ("false");// 设置是否调用的接口模板 true:使用 false:不使用
   		    msgs.setTaskValue(TaskValue);// taskid对应的备注字段
   		    msgs.setExtension("false");// 设置该批短信的Extension，定义同上文下行短信格式中的Extension元素
            msgs.setServiceType(ServiceType);// 设置该批短信的ServiceType，定义同上文下行短信格式中的ServiceType元素
    		SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
    		SimpleDateFormat df1=new SimpleDateFormat("HH:mm:ss");
    		Calendar cal1=Calendar.getInstance();
            cal1.add(Calendar.DATE,0);
            Calendar cal2=Calendar.getInstance();
            cal2.add(Calendar.DATE,1);
            msgs.setStartDate(df.format(cal1.getTime()));// 设置该批短信的StartDate，定义同上文下行短信格式中的StartDate元素
            msgs.setStartTime(df1.format(cal1.getTime()));// 设置该批短信的StartTime，定义同上文下行短信格式中的StartTime元素
            msgs.setEndDate(df.format(cal2.getTime()));// 设置该批短信的EndDate，定义同上文下行短信格式中的EndDate元素
            msgs.setEndTime(df1.format(cal2.getTime()));// 设置该批短信的EndTime，定义同上文下行短信格式中的EndTime元素
            com.wisdom.sms.net.messages.SmsMessage msg=new com.wisdom.sms.net.messages.SmsMessage();// 创建SmsMessage对象，定义同上文下行短信格式中的Message元素
       	    msg.setReceiver(Receiver);// 设置该条短信的Receiver，定义同上文下行短信格式中的Receiver元素
       	    msg.setContents(Contents); // 设置该条短信的Contents，定义同上文下行短信格式中的Contents元素
       	    msg.setOrgCode(OrgCode);// 设置该条短信的发送机构orgCode，定义同上文下行短信格式中的orgCode元素
       	    //msg.setLabels((Label[])label_vec.toArray(new Label [label_vec.size()]));//设置该条短信的标签，每条短信可以使用多组标签。
    	    vec.add(msg);	           		 		 
            msgs.setMessages((com.wisdom.sms.net.messages.SmsMessage[])vec.toArray(new com.wisdom.sms.net.messages.SmsMessage[vec.size()]));// 设置该批短信的每一条短信，一批短信可以包含多条短信
         
   //       Password则是其对应的密码，用户名和密码用于验证发送者，只有验证通过才可能提交短信，msgs即为刚才创建的短信对象。
            log.debug("username:"+username);
            log.debug("password:"+password);
     	    com.wisdom.sms.net.http.Response value1 = binding.sendSMS(username,password, msgs);// 提交该批短信，UserName是短信服务平台管理员分配的用户名，
     	    log.info("value1:"+value1.getMessage());
     	   System.out.println("value1:"+value1.getMessage());
     	   log.info("value1:"+value1.toString());
     	  System.out.println("value1:"+value1.toString());
		}catch(Exception e){
			log.error(util.getERRO(e));
		}
	}

}
